package schema;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: 74646
 * Date: 2022-05-13
 * Time: 20:31
 */

// 懒汉模式
class Singleton3{
    // 1.不会立即初始化实例
    private static Singleton3 instance = null;
    // 2.把构造方法设置为 private
    private Singleton3(){
    }
    // 3.提供一个方法来获取单例模式
    // 只有当真正需要用到这个实例的时候，才会真正去创建这个实例
    public static Singleton3 getInstance(){
       // 将其修改为线程安全的，加锁
        //指定类对象为锁对象
        // 类对象在一个程序中只有一个，够保证多个线程调用getinstance方法的时候都是针对同一个对象进行加锁的
        synchronized (Singleton3.class){
            if(instance==null){
                instance = new Singleton3();
            }
            return instance;
        }
    }
}

public class Demo3 {
    public static void main(String[] args) {
        Singleton3 instance = Singleton3.getInstance();
    }
}
